﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogicaNegocio;
using Entidades;

namespace PresentacionEscritorio
{
    public partial class frmConsultarInstitución : Form, IOpcion
    {
        private string opElegida;
        private int idInstitucionSeleccionada;

        public frmConsultarInstitución()
        {
            InitializeComponent();
        }

        public void setOpcion(string op)
        {
            opElegida = op;
        }

        public string getOpcion()
        {
            return opElegida;
        }

        private void frmConsultarInstitución_Load(object sender, EventArgs e)
        {
            lblResultadoBusqueda.Visible = false;
            cargarGrilla();
        }

        private void cargarGrilla()
        {
            GestorInstituciones gi = new GestorInstituciones();
            List<Institucion> listaInstituciones = gi.obtenerTodos();

            if (listaInstituciones.Count > 0)
            {
                for (int i = 0; i < listaInstituciones.Count; i++)
                {
                    int fila = grdResultadoBúsquedaPaciente.Rows.Add();
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["IdInstitucion"].Value = listaInstituciones[i].IdInstitucion;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["NombreInstitucion"].Value = listaInstituciones[i].NombreInstitucion;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["NombreResponsable"].Value = listaInstituciones[i].NombreResponsable + " " + listaInstituciones[i].ApellidoResponsable;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["Telefono"].Value = listaInstituciones[i].Telefono;

                }
            }
            else
            {
                lblResultadoBusqueda.Visible = true;
            }
        }

        private void grdResultadoBúsquedaPaciente_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (grdResultadoBúsquedaPaciente.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn == grdResultadoBúsquedaPaciente.Columns["Seleccionar"])
            {
                idInstitucionSeleccionada = int.Parse(grdResultadoBúsquedaPaciente.Rows[e.RowIndex].Cells["IdInstitucion"].Value.ToString());
            }
            if (grdResultadoBúsquedaPaciente.Rows[e.RowIndex].Cells[e.ColumnIndex].OwningColumn == grdResultadoBúsquedaPaciente.Columns["Convenio"])
            {
                idInstitucionSeleccionada = int.Parse(grdResultadoBúsquedaPaciente.Rows[e.RowIndex].Cells["IdInstitucion"].Value.ToString());
                opElegida = "convenio";
            }
        }

        private void btnAceptarConsultaPaciente_Click(object sender, EventArgs e)
        {
            frmRegistrarInstitución formInstitucion = new frmRegistrarInstitución();
            formInstitucion.setOpcion(opElegida);
            formInstitucion.IdInstitucionRecibida = idInstitucionSeleccionada;
            formInstitucion.Show();
        }

        private void btnImprimir_Click(object sender, EventArgs e)
        {

        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            GestorInstituciones gi = new GestorInstituciones();
            string nombreInst = txtNombreInstitución.Text;
            List<Institucion> list = gi.obtenerTodos(nombreInst);
            if (list.Count > 0)
            {
                grdResultadoBúsquedaPaciente.Rows.Clear();
                for (int i = 0; i < list.Count; i++)
                {
                    int fila = grdResultadoBúsquedaPaciente.Rows.Add();
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["IdInstitucion"].Value = list[i].IdInstitucion;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["NombreInstitucion"].Value = list[i].NombreInstitucion;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["NombreResponsable"].Value = list[i].NombreResponsable + " " + list[i].ApellidoResponsable;
                    grdResultadoBúsquedaPaciente.Rows[fila].Cells["Telefono"].Value = list[i].Telefono;

                }
            }
            else
                lblResultadoBusqueda.Visible = true;
        }

    }
}
